(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=ScorEpioN
Title=Yusuketeam.com
Description=Référencement d'animes, Skin Winamp, AMV, Paroles...
Site=http://www.yusuketeam.com
Language=FR
Version=04 du 23/05/2005
Requires=3.5
Comments=Ce script nécessite le fichier ScorEpioNCommonScript.pas|.==.| : ' ( ( ( ( /\ | "==()))))): © ScorEpioN ©| ( ( ( ( \_/
License=Informations récupérées sur le site www.yusuketeam.com,|avec l'autorisation de leurs webmasters.|
GetInfo=1
[Options]
Mise à jour=1|1|0=Oui|1=Non
Type de Lancement=0|0|0=Demande le titre avant de lancer le script|1=Ne demande pas le titre avant de lancer le script|2=Cherche le meilleur résultat sans confirmation|3=Lancement automatique sur l'adresse web
Casse Choisie=3|3|0=Titre et Nom en minuscule|1=Titre et Nom en majuscule|2=Première lettre en majuscule|3=Première lettre de chaque mot en majuscule|4=Formatage identique au site d'origine
Choix Titre=0|0|0=Titre dans Titre Traduit|1=Titre dans Titre Original
Recherche sur le titre=0|0|0=Traduit|1=Original
Fichier de log=1|1|0=Oui|1=Non
***************************************************)
program Yusuketeam_FR;
uses
ScorEpioNCommonScript;
const
VersionScript = '04 du 23/05/2005';
NomScript = 'YUSUKETEAM';
urlDomain = 'yusuketeam.com';
urlBase = 'http://www.yusuketeam.com/sfv/';
urlSearch = urlBase+'index.php';
urlSearchParams = 'serie_search=';
//urlReferer = 'http://www.yusuketeam.com/sfv/index.php';
var
MovieName, Address : string;
i,j, premiereExecution : Integer;
listeResultat : TStringList;
//------------------------------------------------------------------------------
// RECUPERE LES RESULTATS YUSUKETEAM.COM
//------------------------------------------------------------------------------
procedure recherche(title : String);
var
Line, titre, adresse : String;
StartPos : Integer;
oK : Boolean;
begin
//Line := PostPage2(urlSearch,urlSearchParams+UrlEncode(title),'application/x-www-form-urlencoded',urlReferer,False,False);
Line := PostPage(urlSearch,urlSearchParams+UrlEncode(title));
if pos('Aucun résultat trouvé', Line) > 0 then
begin
SetField(fieldChecked, '');
exit;
end else
begin
oK := True;
listeResultat := TStringList.Create;
StartPos := pos('résultats trouvés pour', Line);
delete(Line, 1, StartPos+length('résultats trouvés pour')-1);
StartPos := pos('', Line,'0');
titre := findInfo('">', '', Line,'0');
// Ajoute les films
if (titre = '')then
oK := False
else {if (pos('index.php?serie',adresse) <> 0) then}
listeResultat.Add(titre+'|'+adresse);
delete(Line, 1, length('', '
', Line,'0'),GetOption('Casse Choisie')));
if CanSetField(fieldOriginalTitle) and (GetOption('Choix Titre') = 1) then
MonSetField(fieldOriginalTitle, formatTitre(findInfo('', '
', Line,'0'),GetOption('Casse Choisie')));
// Genre
if CanSetField(fieldCategory) then
MonSetField(fieldCategory, formatTitre(findInfo('Catégories : ', '', Line,'0'),GetOption('Casse Choisie')));
// L'histoire
if CanSetField(fieldDescription) then
begin
Value := findInfo('Histoire:
', '', Line,'0');
Value := StringReplace(Value,' ','');
MonSetField(fieldDescription,Value);
end;
// Note
if CanSetField(fieldRating) then
MonSetField(fieldRating, findInfo('Note de la série
', ' / 10', Line,'0'));
// Année
if CanSetField(fieldYear) then
MonSetField(fieldYear, findInfo('Série créée en | ', ' | ', Line,'0'));
// Réalisateur
if CanSetField(fieldDirector) then
MonSetField(fieldDirector, formatTitre(findInfo('Réalisateur | ', ' | ', Line,'0'),GetOption('Casse Choisie')));
// Studio
if CanSetField(fieldProducer) then
MonSetField(fieldProducer, formatTitre(findInfo('Studio', '', Line,'0'),GetOption('Casse Choisie')));
// Informations Complémentaires
if CanSetField(fieldActors) then
begin
Value2 := '';
Value := '';
Value := formatTitre(findInfo('Charac-designer', '', Line,'0'),GetOption('Casse Choisie'));
if Value <> '' then
Value2 := Value2+'Charac-designer : '+Value+#13#10;
Value := formatTitre(findInfo('Directeur d''animation', '', Line,'0'),GetOption('Casse Choisie'));
if Value <> '' then
Value2 := Value2+'Directeur d''animation : '+Value+#13#10;
Value := formatTitre(findInfo('Compositeur', '', Line,'0'),GetOption('Casse Choisie'));
if Value <> '' then
Value2 := Value2+'Compositeur : '+Value+#13#10;
Value := formatTitre(findInfo('Nombre d''épisode prévus ', '', Line,'0'),GetOption('Casse Choisie'));
if Value <> '' then
Value2 := Value2+'Nombre d''épisodes prévus : '+Value+#13#10;
MonSetField(fieldActors, Value2);
end;
// Adresse Web
if CanSetField(fieldURL) then
SetField(fieldURL, Adresse);
// Pour le mode Batch
if (GetOption('Fichier de log') = 0) then
afterUpdate();
end;
//------------------------------------------------------------------------------
// SUPPRIME LES ACCENTS
//------------------------------------------------------------------------------
function supprimeAccents(NomFilm : String) : String;
begin
// les accents
NomFilm := supprimeLesAccents(NomFilm);
// Pour n'avoir que le titre
delete(NomFilm, pos(' - ',NomFilm), length(NomFilm));
if (pos(', ',NomFilm) > 0) then
delete(NomFilm, 1, pos(', ',NomFilm)+1);
if (pos('(',NomFilm) > 0) then
delete(NomFilm, pos('(',NomFilm), length(NomFilm));
if (pos(':',NomFilm) > 0) then
delete(NomFilm, pos(':',NomFilm), length(NomFilm));
result := trim(NomFilm);
end;
//------------------------------------------------------------------------------
// COMPARE LE TITRE PASSE ET LE TITRE TROUVE
//------------------------------------------------------------------------------
function compareTitle(titleAllo, title : String) : String;
begin
title := supprimeAccents(trim(AnsiLowerCase(title)));
titleAllo := supprimeAccents(trim(AnsiLowerCase(titleAllo)));
if (title = titleAllo) then
begin
result := 'OK';
end else
begin
result := 'KO';
end;
end;
//------------------------------------------------------------------------------
// TROUVE LE BON TITRE SI LE PREMIER N'EST PAS LE BON
//------------------------------------------------------------------------------
procedure trouveTitle(title : String);
var
oK, couple, titre, adresse : String;
begin
for i:=0 to listeResultat.Count-1 do
begin
couple := listeResultat.GetString(i);
titre := copy(couple,0,pos('|',couple)-1);
delete(couple, 1, length(titre)+1);
HTMLDecode(titre);
adresse := copy(couple,0,length(couple));
adresse := URLEncode(adresse);
oK := compareTitle(title,titre);
if oK = 'OK' then
begin
recupInfo(adresse);
exit;
end;
end;
listeResultat.Free;
end;
//------------------------------------------------------------------------------
// PROGRAMME PRINCIPAL
//------------------------------------------------------------------------------
begin
if AcceptLicense(1) then
if CheckVersion(3,5,0) then
begin
if GetOption('Mise à jour') = 0 then
begin
execMenuMAJ(VersionScript,NomScript);
exit;
end;
MovieName := recupTitreRecherche(GetOption('Recherche sur le titre'));
Sleep(1000);
if (GetOption('Fichier de log') = 0) and (premiereExecution = 0) then
begin
batch(NomScript);
AddToLog('Les films ayant été mis à jour sont maintenant cochés');
end;
if (GetOption('Type de Lancement') = 0) then
begin
if Input(NomScript+' by ScorEpioN', 'Entrez le titre de l''anime :', MovieName) then
begin
if Pos(urlDomain, MovieName) > 0 then
begin
recupInfo(MovieName);
end else
recherche(MovieName);
end;
end else
if (GetOption('Type de Lancement') = 3) then
begin
if (premiereExecution = 0) then
begin
premiereExecution := -1;
if (ShowConfirmation('Vous allez executer le script sans confirmation, cliquer sur ''''OUI'''' pour continuer') = False) then
exit;
end;
MovieName := GetField(fieldURL);
if Pos(urlDomain, MovieName) > 0 then
recupInfo(MovieName);
end else
begin
if (premiereExecution = 0) then
begin
premiereExecution := -1;
if (ShowConfirmation('Vous allez executer le script sans confirmation, cliquer sur ''''OUI'''' pour continuer') = True) then
begin
recherche(MovieName);
end else
exit;
end else
begin
recherche(MovieName);
end;
end;
end else
ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
end.